package com.magist.manage.copyrights.service;

import com.github.pagehelper.PageInfo;
import com.magist.core.entity.Page;
import com.magist.core.entity.ResultMessage;
import com.magist.core.service.BaseService;
import com.magist.manage.copyrights.dto.SupplyContractDto;
import com.magist.manage.copyrights.entity.SupplyContract;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

public interface SupplyContractService extends BaseService<SupplyContract>{

    /**
     * 分页方法
     * @param example
     * @param page
     * @return
     */
    PageInfo<SupplyContract> page(Example example, Page page);

    /**
     * 添加合同
     * @param supplyContractDto
     */
    void addContract(SupplyContractDto supplyContractDto);

    /**
     * 更新供应商合同
     * @param supplyContractDto
     * @return
     */
    int updateSupplyContract(SupplyContractDto supplyContractDto);

    /**
     * 通过合同编号查询
     * @param contractNo
     * @return
     */
    SupplyContract findByContractNo(String contractNo);

    /**
     * 失效合同
     * 合同失效，关联的版权和授权也进入失效状态
     * @param id
     * @return
     */
    int doInvalidContract(String id);

    void doBatchAdd(List<SupplyContractDto> supplyContractDtos);

    /**
     * 查询即将过期的合同
     * @param month 月数
     * @return
     */
    List<SupplyContract> findNearlyExpire(int month);

    List<SupplyContract> findByCreateById(String userId);

    /**
     * 检查是否即将过期
     * @param contractNo
     * @return
     */
    ResultMessage checkContractDate(String contractNo);
}